#define _CRT_SECURE_NO_WARNINGS 1


//#include<vector>
//#include<iostream>
//
//using namespace std;
//
//int mySqrt(int x)
//{
//    int left = 1, right = x;
//    while (left < right)
//    {
//        long long mid = left + (right - left + 1) / 2;
//        if (mid * mid <= x)
//        {
//            left = mid;
//        }
//        else
//        {
//            right = mid - 1;
//        }
//    }
//    return left;
//}
//
//int main()
//{
//    cout << mySqrt(8) << endl;
//
//	return 0;
//}


#include<vector>
#include<iostream>

using namespace std;

int findMin(vector<int>& nums)
{
    int size = nums.size();
    int left = 0, right = size - 1;
    while (left < right)
    {
        int mid = left + (right - left) / 2;
        if (nums[mid] > nums[size - 1])
        {
            left = mid + 1;
        }
        else
        {
            right = mid;
        }
    }
    return left;
}

int main()
{
    vector<int> v = { 4,5,6,7,0,1,2 };
    cout << findMin(v) << endl;

	return 0;
}